1. Field
Embodiments relate to a moving robot and a method to build a map for the same, wherein a 3D map for an ambient environment of the moving robot may be built using a Time of Flight (TOF) camera that may acquire 3D distance information in real time.
2. Description of the Related Art
Moving robots are used in various fields due to the development of sensors and controllers. Typical examples include a household assistant robot, a service robot for public facilities, and a conveyance robot and a worker assistant robot used in production lines. Demand for moving robots and the field of application of moving robots are expected to significantly increase in the future. To locate (or localize) the moving robot and to create information of an ambient environment of the moving robot without prior information about the ambient environment, the moving robot needs to simultaneously perform localization and map building processes in an associated manner. This scheme is referred to as “Simultaneous Localization And Map-building (SLAM)”.
To perform map building, the moving robot should acquire information about the ambient environment. The moving robot may use a Time of Flight (TOF) camera to acquire information about the ambient environment. The TOF camera is a device that acquires 3D distance information using a TOF method which measures the time that it takes for infrared light emitted from a light emitting unit to return to a light receiving unit after being reflected from an object. The TOF camera may acquire 3D distance information in real time since it may calculate 3D distance information from an infrared intensity image without complex calculation processes.
Occupancy voxel map building has been used as a method to build a map of an ambient environment of a moving robot using the TOF camera. The occupancy voxel map building method divides the ambient environment of the moving robot into small 3D voxels and fills voxels corresponding to 3D distance information acquired by the TOF camera in accordance with current position information of the moving robot. That is, the possibility of presence of an object in each voxel in a 3D space is probabilistically written to the voxel to build a 3D voxel map. However, according to the occupancy voxel map building method, the accuracy of the built map decreases as the travel distance of the moving robot increases or as the size of a space within which the moving robot moves (i.e., a space to be mapped) increases since the accuracy of information registered in each voxel decreases as errors in location information of the moving robot increase.
An Iterative Closest Point (ICP) algorithm has been suggested to overcome such problems of the occupancy voxel map building method. The ICP algorithm uses a method to minimize the sum of distances between two sampled 3D point cloud data A and B as shown in FIG. 1. The ICP algorithm may calculate a 3D rigid body transformation (a translation or rotation transformation) which minimizes the sum of distances between the two 3D point cloud data A and B. The ICP algorithm may improve the accuracy of the built 3D map compared to the occupancy voxel map building method since the ICP algorithm can relatively correctly match two 3D point cloud data using the calculated 3D rigid body transformation even when the location information of the moving robot is incorrect.
A sequential map building method using a conventional ICP algorithm includes sequential matching processes ({circle around (1)}→{circle around (2)}→{circle around (3)}), each including sequentially accumulating a plurality of 3D point cloud data as the moving robot moves, locating points corresponding to the 3D point cloud data and matching the plurality of 3D point cloud data as shown in FIG. 2. Specifically, the sequential map building method performs map building for an ambient environment of the moving robot by sequentially performing a matching process “{circle around (1)}” to match two sequentially accumulated 3D point cloud data (a) and (b) to build a new map, a matching process “{circle around (2)}” to match the new map built through the matching process “{circle around (1)}” and subsequently accumulated 3D point cloud data (c) to build a new map, and a matching process “{circle around (3)}” to match the new map built through the matching process “{circle around (2)}” and subsequently accumulated 3D point cloud data (d) to build a new map. That is, the sequential map building method performs the matching processes in the order of {circle around (1)}→{circle around (2)}→{circle around (3)}.
However, in this sequential map building method, as the travel distance of the moving robot increases or as the size of the space to be modeled increases, a search space within which correlations between two 3D point cloud data are determined increases, thereby increasing calculation time. In addition, the sequential map building method has a relatively high possibility of incorrectly determining correlations between two 3D point cloud data having different size levels which are compared with each other and also has no solution to errors accumulated as the travel distance increases, thereby reducing the accuracy of the built map.
Moreover, since the map building method using the conventional ICP algorithm is a type of optimization technique which finds a rigid body transformation relation which minimizes the sum of distances between two 3D point cloud data, the map building method provides transformation results having significant errors if the solution converges to local minima.